﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Graphics;
using Slock.GameObjects;

namespace Slock.Rendering
{
    /// <summary>
    /// Defines basic functions for a renderer for SLock
    /// </summary>
    internal interface IRenderer : IDisposable
    {
        /// <summary>
        /// Renders the buffers in this component
        /// </summary>
        /// <param name="delta">elapsd time</param>
        /// <param name="shader">shader effect to apply</param>
        /// <param name="view">view matrix</param>
        /// <param name="projection">projection matrix</param>
        void Draw(float delta, Matrix view, Matrix projection);

        /// <summary>
        /// Get the graphics device that this renderer is using 
        /// </summary>
        GraphicsDevice GraphicsDevice
        { get; }
    }
}
